package com.sunny.example;

import java.util.*;

/**
 * 明明的随机数
 * <p>
 * 明明生成了NNN个1到500之间的随机整数。请你删去其中重复的数字，即相同的数字只保留一个，把其余相同的数去掉，然后再把这些数从小到大排序，按照排好的顺序输出。
 * 数据范围： 1≤n≤1000 1 \le n \le 1000 \ 1≤n≤1000  ，输入的数字大小满足 1≤val≤500 1 \le val \le 500 \ 1≤val≤500
 */
public class HJ3 {
    private static Scanner mScanner = new Scanner(System.in);
    public static void main(String[] args) {

        String input = mScanner.nextLine();
        try {
            int n = Integer.parseInt(input);
            List<Integer> radoms = genRandoms(n);
            List<Integer> cleanNums = remDuplicateNum(radoms);
            //最后按顺序输出
            outputNum(cleanNums);
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    private static void outputNum(List<Integer> cleanNums) {
        if (cleanNums != null && cleanNums.size() > 0) {
            for (Integer integer : cleanNums) {
                System.out.println(integer);
            }
        }
    }

    /**
     * 去除重复数字
     *
     * @param radoms
     * @return
     */
    private static List<Integer> remDuplicateNum(List<Integer> radoms) {
        List<Integer> cleanList = new ArrayList<>(new TreeSet<>(radoms));
        //再利用Sort排序
        Collections.sort(cleanList);
        return cleanList;
    }

    /**
     * 随机生成指定个数的随机数
     *
     * @param num
     * @return
     */
    private static List<Integer> genRandoms(int num) {
        List<Integer> result = new ArrayList<>();
        for (int i = 0; i < num; i++) {
            result.add(mScanner.nextInt());
        }
        return result;
    }
}
